package com.atguigu.gulimall.coupon;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;


/**
 * 1.如何使用Nacos座位配置中心统一管理配置
 *  1）引入nacos-config
 *  2)创建一个bootstrap.properties
 *      spring.application.name=gulimall-coupon
 *      spring.cloud.nacos.config.server-addr=127.0.0.1:8848
 *  3）需要给配置中心默认添加一个 数据集（Data Id   application.properties中）
 *     gulimall-coupon.properties  默认规则，应用名是.properties
 *  4）给应用名.properties添加任何配置
 *  5）动态配置：
 *      @RefreshScope  动态获取并刷新配置
 *      @Value（“${配置项的名称}”） 获取配置
 *      如果配置中心和当前应用都配置了相同的项，优先使用配置中心的配置
 *
 * 2.细节
 *   1）命名空间：做配置隔离
 *        默认public为保留空间
 *        1.开发、测试、生产，利用命名来做环境隔离
 *        注意：在bootstrap.properties中配置需要使用那个命名空间下的配置（要写命名空间的唯一id）
 *        2.每一个微服务之间互相隔离配置，每一个微服务都创建自己的命名空间，这样只加载自己命名空间下的配置
 *   2）配置集：所有配置集合的Id
 *   3）配置集Id：类似于配置文件名
 *      Data Id:类似文件名
 *   4）配置分组：
 *      默认所有的配置集都属于：DEFAULT_GROUP;
 *   每个微服务创建自己的命名空间，使用配置分组来区分环境，dev\test\prod
 * 3.从配置中心中加载多个配置集
 *   1)微服务任何配置，配置服务，都可以放在配置中心中
 *   2）只需要在bootstr.properties中配置读取即可
 *   3）@Value、@ConfigurationProperties...
 *   以前任何方式从配置文件中获取值都能使用
 *   配置中心有的优先使用配置中心的值
 */
//@MapperScan("com.atguigu.gulimall.coupon")
@EnableDiscoveryClient
@SpringBootApplication
public class GulimalllCouponApplication {
    public static void main(String[] args) {
        SpringApplication.run(GulimalllCouponApplication.class, args);
    }
}
